import com.mysql.cj.jdbc.MysqlDataSource;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;

public class insert {
    public static void main(String[] args) throws SQLException {
        Scanner scanner = new Scanner(System.in);

        // 1. 创建数据源(DataSource)对象
        DataSource dataSource = new MysqlDataSource();
        ((MysqlDataSource)dataSource).setURL("jdbc:mysql://127.0.0.1:3306/java?characterEncoding=utf8&useSSL=false");
        ((MysqlDataSource)dataSource).setUser("root");
        ((MysqlDataSource)dataSource).setPassword("zzl666666");

        // 2.和数据库服务器进行通信, 需要建立网络连接
        Connection connection = dataSource.getConnection();


        // 3. 构造 SQL 语句
        System.out.println("输入要插入的 id: ");
        int id = scanner.nextInt();
        System.out.println("输入要插入的 name: ");
        String name = scanner.next();

        String sql = "insert into student values(?,?)";
        PreparedStatement preparedStatement = connection.prepareStatement(sql);
        preparedStatement.setInt(1,id);
        preparedStatement.setString(2,name);

        // 4. 执行 SQL (把 SQL 通过网络发送到服务器)
        // 进行增, 删, 改, 甚至建表删表.......... 这些操作统称为 update ~~
        // 查, 有另外一个方法 executeQuery ~~
        int n = preparedStatement.executeUpdate();
        System.out.println("n = " + n);

        // 5. 关闭连接等资源
        preparedStatement.close();
        connection.close();
    }
}
